package com.atguigu.edu.controller;


import com.atguigu.edu.entity.menu.OneSubjectMenu;
import com.atguigu.edu.service.SubjectService;
import com.atguigu.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 课程科目 前端控制器
 * </p>
 *
 * @author admin
 * @since 2020-07-05
 */

@RestController
@RequestMapping("/edu/subject")
@Api(description = "添加课程分类8001- excel上传/ 查询一/二级菜单")
@Slf4j
public class SubjectController {

    @Autowired
    SubjectService subjectService;

    @ApiOperation(value = "通过excel文件进行添加，excel中一/二级菜单不允许为空")
    @PostMapping("/addsubject")
    public R addSubject(MultipartFile file) {
        log.error(file.getOriginalFilename());

        if (null != file) {
            if (file.getOriginalFilename().endsWith("xlsx") || file.getOriginalFilename().endsWith("xls")) {
                try {
                    boolean flag = subjectService.addSubject(file, subjectService);
                    if (flag) {
                        return R.ok();
                    } else {
                        return R.error().message("表格中的数据可能已经存在或该表格中的数据存在异常");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    return R.error().message("读取失败,Excel中可能存在空值!");
                }
            } else {
                return R.error().message("请上传Excel文件(以xls或以xlsx后缀结尾的类型文件)");
            }
        }
        return R.error().message("请上传Excel文件(以xls或以xlsx后缀结尾的类型文件)");
    }
    @ApiOperation(value = "查询课程分类/一二级菜单")
    @GetMapping("/findAll")
    public R findAllSubject() {
        List<OneSubjectMenu> list = subjectService.findAllSubject();
        return R.ok().data("data2", list);
    }

}

